﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.ServiceModel.Channels;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.ClienteWs;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.RelatorioWs;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.UtilidadesWs;
namespace PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.GUI
{
    public partial class ClienteVerExtrato : System.Web.UI.Page
    {
        PubClub_Cliente_WS webServiceCliente = new PubClub_Cliente_WS();
        PubClub_Relatorio_WS webServiceRelatorio = new PubClub_Relatorio_WS();
        Utilizadades_WS webServiceUtilidades = new Utilizadades_WS();

        ObjetoCliente cliente;
        ObjetoBebida bebida;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["Cliente"] == null)
            {
                Response.Redirect("Login.aspx?Logout=2");
            }
            else
            {
                cliente = webServiceCliente.GetCliente(Convert.ToInt32(Session["Cliente"]));
            }

            TableHeaderRow linhaCabecalho = new TableHeaderRow();

            TableHeaderCell celulaCabecalhoNomeDaBebida = new TableHeaderCell();
            Label labelCabecalhoNomeDaBebida = new Label();

            TableHeaderCell celulaCabecalhoQuantidadeDaBebida = new TableHeaderCell();
            Label labelCabecalhoQuantidadeDaBebida = new Label();

            TableHeaderCell celulaCabecalhoDataHora = new TableHeaderCell();
            Label labelCabecalhoDatahora = new Label();

            labelCabecalhoNomeDaBebida.Text = "Bebida";
            celulaCabecalhoNomeDaBebida.Controls.Add(labelCabecalhoNomeDaBebida);
            linhaCabecalho.Cells.Add(celulaCabecalhoNomeDaBebida);

            labelCabecalhoQuantidadeDaBebida.Text = "Quantidade de doses";
            celulaCabecalhoQuantidadeDaBebida.Controls.Add(labelCabecalhoQuantidadeDaBebida);
            linhaCabecalho.Cells.Add(celulaCabecalhoQuantidadeDaBebida);

            labelCabecalhoDatahora.Text = "Data";
            celulaCabecalhoDataHora.Controls.Add(labelCabecalhoDatahora);
            linhaCabecalho.Cells.Add(celulaCabecalhoDataHora);

            TabelaExtrato.Rows.Add(linhaCabecalho);

            BindingList<Extrato> listaExtrato = new BindingList<Extrato>(webServiceRelatorio.ExtratoCliente(cliente.ClienteId));

            int i = 0;
            if (listaExtrato.Count == 0)
            {
                LabelAviso.Text = "Você não tem extrato.";
                LabelAviso.Visible = true;

            }
            else
            {
                LabelAviso.Visible = false;
                TabelaExtrato.Visible = true;

                foreach (var item in listaExtrato)
                {
                    TableRow linhaDados = new TableRow();

                    TableCell celulaNomeDaBebida = new TableCell();
                    Label labelNomeDaBebida = new Label();

                    TableCell celulaQuantidadeDaBebida = new TableCell();
                    Label labelQuantidadeDaBebida = new Label();

                    TableCell celulaDataHora = new TableCell();
                    Label labelDataHora = new Label();

                    if (i % 2 != 0)
                    {
                        linhaDados.CssClass = "odd";

                    }
                    i++;

                    labelNomeDaBebida.Text = item.Bebida;
                    celulaNomeDaBebida.Controls.Add(labelNomeDaBebida);
                    linhaDados.Cells.Add(celulaNomeDaBebida);

                    labelQuantidadeDaBebida.Text = item.Quantidade.ToString();
                    celulaQuantidadeDaBebida.Controls.Add(labelQuantidadeDaBebida);
                    celulaQuantidadeDaBebida.CssClass = "alignRight";

                    if (labelQuantidadeDaBebida.Text.Substring(0, 1).Equals("-"))
                    {
                        labelQuantidadeDaBebida.ForeColor = System.Drawing.Color.Red;
                    }
                    else
                    {
                        labelQuantidadeDaBebida.ForeColor = System.Drawing.Color.Green;
                    }
                    
                    linhaDados.Cells.Add(celulaQuantidadeDaBebida);

                    labelDataHora.Text = item.DataHora.ToString();
                    celulaDataHora.Controls.Add(labelDataHora);
                    linhaDados.Cells.Add(celulaDataHora);


                    TabelaExtrato.Rows.Add(linhaDados);
                }
            }
        }
    }
}